package com.itlong.cloud.operate.service;

import com.itlong.cloud.POJO.DTO.operate.OperateWithdrawPageDTO;
import com.itlong.cloud.POJO.VO.operate.OperateFinaceInfoVO;
import com.itlong.cloud.POJO.VO.operate.OperateWithdrawVO;
import com.itlong.cloud.utils.page.Page;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * <desc>
 *      运营-财务管理-财务提现审接口。
 * <desc/>
 *
 * @createDate 2018/09/20.
 */
public interface IOperateWithdrawService {

    /**
     * <desc>
     *      财务提现审核信息分页查询
     * <desc/>
     *
     * @param operateWithdrawPageDTO 分页查询参数
     * @return
     * @author Qiang.S
     * @createDate 2018-09-20
     */
      Page<OperateWithdrawVO> getWithdrawInfoPage(OperateWithdrawPageDTO operateWithdrawPageDTO) throws Exception;

    /**
     * <desc>
     *      审批拒绝
     * <desc/>
     *
     * @param cashIds 提现记录ID,逗号分隔
     * @param myUserName 登陆用户编号
     * @return
     * @author Qiang.S
     * @createDate 2018-09-20
     */
    Integer refuse(String cashIds,String myUserName) throws Exception;

    /**
     * <desc>
     *      修改备注
     * <desc/>
     *
     * @param cashId 提现记录ID
     * @param remark 备注
     * @return
     * @author Qiang.S
     * @createDate 2018-09-20
     */
    Integer updateRemark(String cashId, String remark) throws Exception;

    /**
     * <desc>
     *      修改状态
     * <desc/>
     *
     * @param cashId 提现记录ID
     * @param tradStatus 3提现成功 4提现失败
     * @return
     * @author Qiang.S
     * @createDate 2018-09-20
     */
    Integer updateTradeStatus(String cashId, String tradeStatus) throws Exception;

    /**
     * <desc>
     *      系统财务汇总
     * <desc/>
     *
     * @return
     * @author Qiang.S
     * @createDate 2018-09-20
     */
    OperateFinaceInfoVO getFinaceInfo() throws Exception;

    /**
     * <desc>
     *      根据条件查询财务提现审核信息
     * <desc/>
     *
     * @param operateWithdrawPageDTO 查询参数
     * @return
     * @author Qiang.S
     * @createDate 2018-09-20
     */
    List<OperateWithdrawVO> getWithdrawInfoForExcle(OperateWithdrawPageDTO operateWithdrawPageDTO) throws Exception;

    /**
     * <desc>
     *      财务提现审核明细查询
     * <desc/>
     *
     * @param cashId 提现记录ID
     * @return
     * @author Qiang.S
     * @createDate 2018-09-27
     */
    OperateWithdrawVO getWithdrawDetail(String cashId) throws Exception;

}
